Rockchip RK3588 kernel dts解析之PCIe

您所在的位置:网站首页 pcie30 6900xt Rockchip RK3588 kernel dts解析之PCIe

Rockchip RK3588 kernel dts解析之PCIe

2024-07-13 21:42| 来源: 网络整理| 查看: 265

Rockchip RK3588 kernel dts解析之PCIe

文章目录 Rockchip RK3588 kernel dts解析之PCIeRK3588控制器RK3588 PHY使用限制DTS配置解析硬件设计软件DTS配置其他常见的PCIE配置对应的DTS配置实例pcie3.0phy拆分2个2Lane RC, 3个PCIe 2.0 1Lane(comboPHY)pcie3.0phy拆分为4个1Lane, 1个使用PCIe 2.0 1 Lane(comboPHY)

RK3588控制器

RK3588共有5个PCIe控制器:

1个4Lane控制器,DM模式可以支持作为EP使用1个2Lane控制器,只能作为RC使用3个1Lane控制器,只能作为RC使用

控制器在DTS对应节点名称 RK3588

控制器DTS节点名称配对的PHYPCIe Gen3 x 4Lanepcie3x4:pcie@fe150000pcie30phyPCIe Gen3 x 2Lanepcie3x2:pcie@fe160000pcie30phyPCIe Gen3 x 1Lanepcie2x1l0:pcie@fe170000pcie30phy combphy1_psPCIe Gen3 x 1Lanepcie2x1l1:pcie@fe180000pcie30phycombphy2_psuPCIe Gen3 x 1Lanepcie2x1l2:pcie@fe190000combphy0_ps

RK3588S

控制器DTS节点名称配对的PHYPCIe Gen3 x 1Lanepcie2x1l1:pcie@fe180000pcie30phycombphy2_psuPCIe Gen3 x 1Lanepcie2x1l2:pcie@fe190000combphy0_ps RK3588 PHY

RK3588有两种PCIe PHY:

一种为pcie3.0PHY,含2个Port共4个Lane,可以根据实际需求拆分使用一种是pcie2.0的PHY有3个,每个都是2.0 1Lane,跟SATA和USB combo使用

PHY在DTS中对应的节点名称 RK3588

PHY名称DTS节点名称是否复用pcie30phyphy@fee80000pcie专用combphy0_psphy@fee00000与SATA复用combphy1_psphy@fee10000与SATA复用combphy2_psuphy@fee20000与SATA/USB3复用

RK3588S

PHY名称DTS节点名称是否复用combphy0_psphy@fee00000与SATA复用combphy2_psuphy@fee20000与SATA/USB3复用 使用限制 pcie30phy拆分后,pcie30x4控制器,工作于2Lane模式时只能固定配合pcie30phy的port0,工作于1Lane模式时,只能固定配合pcie30phy的port0lane0;pcie30phy拆分后,pcie30x2控制器,工作于2Lane模式时只能固定配合pcie30phy的port1,工作于1Lane模式时,只能固定配合pcie30phy的port1lane0;pcie30phy拆分为4个1Lane,pcie3phy的port0lane1只能固定配合pcie2x1l0控制器,pcie3phy的port1lane1只能固定配合pcie2x1l1控制器;pcie30x4控制器工作于EP模式,可以使用4Lane模式,或者2Lane模式使用pcie30phy的port0,pcie30phy的port1中2lane可以作为RC配合其他控制器使用。默认使用common clock作为reference clock时,无法实现pcie30phy port0的lane0工作于EP模式,lane1工作于RC模式配合其他控制器使用,因为Port0的两个lane是共用一个输入的reference clock,RC和EP同时使用clock可能会有冲突。RK3588 pcie30phy 如果只使用其中一个port,另一个port也需要供电,refclk等其他信号可接地。 DTS配置解析

pcie的配置大部分是固定的,需要在板级dts配置的变量并不多参考以下要点进行配置即可:

控制器/PHY使能:确定方案后,根据原理图选择使能正确的控制器和PHY,注意控制器的index和phy的index不一定是顺序匹配的,如RK3588的pcie2x1l0不是对应combphy0_ps;控制器:部分控制器(如RK3588的pcie2x1l0和pcie2x1l1)有不止一个phy可选,按方案设计正确配置“phys”;控制器:作为RC通常需要配置"reset-gpios", 该项对应原理图PCIE的"PERSTn"信号;控制器:作为RC可能需要配置"vpcie3v3-supply",该项对应的是PCIE的"PWREN"gpio信号控制的fixed regulator;控制器:作为EP使用时,需要修改"compatible"为EP模式对应字串;PHY:pcie30phy共4个lane,可拆分使用,需要根据方案正确配"rockchip,pcie30-phymode"模式;

参考设计硬件RK3588-EVB1 对应DTS:rk3588-evb1-lp4-v10.dts

硬件设计

pcie3.0 4Lane RC + 2个pcie 2.0(复用的PHY分别对应 MUX1:combphy1_ps 和MUX2:combphy2_psu ) 在这里插入图片描述

软件DTS配置

PCIe的具体DTS配置在arch/arm64/boot/dts/rockchip/rk3588-evb1-lp4.dtsi

电源部分的配置:

pcie20_avdd0v85: pcie20-avdd0v85 { compatible = "regulator-fixed"; regulator-name = "pcie20_avdd0v85"; regulator-boot-on; regulator-always-on; regulator-min-microvolt = ; regulator-max-microvolt = ; vin-supply = ; }; pcie20_avdd1v8: pcie20-avdd1v8 { compatible = "regulator-fixed"; regulator-name = "pcie20_avdd1v8"; regulator-boot-on; regulator-always-on; regulator-min-microvolt = ; regulator-max-microvolt = ; vin-supply = ; }; pcie30_avdd0v75: pcie30-avdd0v75 { compatible = "regulator-fixed"; regulator-name = "pcie30_avdd0v75"; regulator-boot-on; regulator-always-on; regulator-min-microvolt = ; regulator-max-microvolt = ; vin-supply = ; }; pcie30_avdd1v8: pcie30-avdd1v8 { compatible = "regulator-fixed"; regulator-name = "pcie30_avdd1v8"; regulator-boot-on; regulator-always-on; regulator-min-microvolt = ; regulator-max-microvolt = ; vin-supply = ; }; # PCIe3.0的GPIO控制电源的配置 vcc3v3_pcie30: vcc3v3-pcie30 { compatible = "regulator-fixed"; regulator-name = "vcc3v3_pcie30"; regulator-min-microvolt = ; regulator-max-microvolt = ; enable-active-high; gpios = ; startup-delay-us = ; vin-supply = ; };

PCIE控制器的配置 控制的详细配置在rk3588.dtsi中 ,对应的phy的指定也已经默认配置好,如需要重新配置phy可以修改

phys = ; phys = ;

RK3588的pcie2x1l0和pcie2x1l1控制器可以路由到多个phy,需要注意的是不同的phy引用方式可能有差异,comboPHY需要同时指定phy的工作模式

用于WIFI模块 &pcie2x1l0 { reset-gpios = ; rockchip,skip-scan-in-resume; status = "okay"; }; 用于以太网模块 &pcie2x1l1 { reset-gpios = ; pinctrl-names = "default"; pinctrl-0 = ; status = "okay"; }; &pcie30phy { rockchip,pcie30-phymode = ; status = "okay"; }; &pcie3x4 { reset-gpios = ; //配置PCIE3.0的reset脚 vpcie3v3-supply = ; //配置对应的电源 status = "okay"; };

PHY的配置

硬件原图上面对应的是MUX1 &combphy1_ps { status = "okay"; }; 硬件原图上面对应的是MUX2 &combphy2_psu { status = "okay"; }; 其他常见的PCIE配置对应的DTS配置实例 pcie3.0phy拆分2个2Lane RC, 3个PCIe 2.0 1Lane(comboPHY)

注意:如果pcie3.0phy拆分2个2Lane,但是只用一组的话,需要把另一组disabled,但是关掉的那组的pcie的电源还是要供着,否则会导致pcie异常无法使用。

/ { vcc3v3_pcie30: vcc3v3-pcie30 { compatible = "regulator-fixed"; regulator-name = "vcc3v3_pcie30"; regulator-min-microvolt = ; regulator-max-microvolt = ; enable-active-high; gpios = ; startup-delay-us = ; vin-supply = ; }; }; &combphy0_ps { status = "okay"; }; &combphy1_ps { status = "okay"; }; &combphy2_psu { status = "okay"; }; &pcie2x1l0 { phys = ; reset-gpios = ; vpcie3v3-supply = ; status = "okay"; }; &pcie2x1l1 { phys = ; reset-gpios = ; vpcie3v3-supply = ; status = "okay"; }; &pcie2x1l2 { reset-gpios = ; vpcie3v3-supply = ; status = "okay"; }; &pcie30phy { rockchip,pcie30-phymode = ; status = "okay"; }; //表示lane2/3 &pcie3x2 { reset-gpios = ; vpcie3v3-supply = ; status = "okay"; }; //表示lane0/1 &pcie3x4 { num-lanes = ; reset-gpios = ; vpcie3v3-supply = ; status = "okay"; }; pcie3.0phy拆分为4个1Lane, 1个使用PCIe 2.0 1 Lane(comboPHY) / { vcc3v3_pcie30: vcc3v3-pcie30 { compatible = "regulator-fixed"; regulator-name = "vcc3v3_pcie30"; regulator-min-microvolt = ; regulator-max-microvolt = ; enable-active-high; gpios = ; startup-delay-us = ; vin-supply = ; }; }; &combphy0_ps { status = "okay"; }; &pcie2x1l0 { phys = ; reset-gpios = ; vpcie3v3-supply = ; status = "okay"; }; &pcie2x1l1 { phys = ; reset-gpios = ; vpcie3v3-supply = ; status = "okay"; }; &pcie2x1l2 { reset-gpios = ; vpcie3v3-supply = ; status = "okay"; }; &pcie30phy { rockchip,pcie30-phymode = ; status = "okay"; }; &pcie3x2 { num-lanes = ; reset-gpios = ; vpcie3v3-supply = ; status = "okay"; }; &pcie3x4 { num-lanes = ; reset-gpios = ; vpcie3v3-supply = ; status = "okay"; };

PCIE的详细说明文档可以参考Rockchip RK3588 Android SDK的如下文档

RKDocs/common/PCie/Rockchip_Developer_Guide_PCIe_CN.pdf

返回 RK3588 Kernel DTS解析 专栏



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3